<!DOCTYPE html>
<html lang=en>
<head>
    <!-- so meta -->
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="HandheldFriendly" content="True">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
    <meta name="description" content="更新于:2013.10.09 自己记录一些东西，转载请良心注明出处。 1.如何同时打开两个UNITY3D项目。 有时候需要对比，或者需要添加另一个项目的某资源到目前项目，同时打开两个项目看起来会比较明了。如果直接打开的话，发现它说有重复项目已经被打开而提示错误不能打开。 此刻就需要设置一些unity preferences了，从edit处打开。勾上下图红圈圈就可以了，always show pro">
<meta property="og:type" content="article">
<meta property="og:title" content="更新于2013.10.09">
<meta property="og:url" content="http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/index.html">
<meta property="og:site_name" content="TmoonSite">
<meta property="og:description" content="更新于:2013.10.09 自己记录一些东西，转载请良心注明出处。 1.如何同时打开两个UNITY3D项目。 有时候需要对比，或者需要添加另一个项目的某资源到目前项目，同时打开两个项目看起来会比较明了。如果直接打开的话，发现它说有重复项目已经被打开而提示错误不能打开。 此刻就需要设置一些unity preferences了，从edit处打开。勾上下图红圈圈就可以了，always show pro">
<meta property="og:locale" content="en_US">
<meta property="article:published_time" content="2015-05-14T12:21:47.000Z">
<meta property="article:modified_time" content="2020-01-07T10:48:14.952Z">
<meta property="article:author" content="Tmoonlight">
<meta name="twitter:card" content="summary">
    
    
        
          
              <link rel="shortcut icon" href="/images/favicon.ico">
          
        
        
          
            <link rel="icon" type="image/png" href="/images/logo2.gif" sizes="192x192">
          
        
        
          
            <link rel="apple-touch-icon" sizes="180x180" href="/images/logo2.gif">
          
        
    
    <!-- title -->
    <title>更新于2013.10.09</title>
    <!-- styles -->
    
<link rel="stylesheet" href="/css/style.css">

    <!-- persian styles -->
    
      
<link rel="stylesheet" href="/css/rtl.css">

    
    <!-- rss -->
    
    
<meta name="generator" content="Hexo 4.2.0"></head>

<body class="max-width mx-auto px3 ltr">
    
      <div id="header-post">
  <a id="menu-icon" href="#"><i class="fas fa-bars fa-lg"></i></a>
  <a id="menu-icon-tablet" href="#"><i class="fas fa-bars fa-lg"></i></a>
  <a id="top-icon-tablet" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');" style="display:none;"><i class="fas fa-chevron-up fa-lg"></i></a>
  <span id="menu">
    <span id="nav">
      <ul>
         
          <li><a href="/">Home</a></li>
         
          <li><a href="/about/">About</a></li>
         
          <li><a href="/archives/">Writing</a></li>
         
          <li><a href="/projects_url">Projects</a></li>
        
      </ul>
    </span>
    <br/>
    <span id="actions">
      <ul>
        
        <li><a class="icon" href="/2015/05/16/%E8%B7%A8%E5%9F%9F%E6%89%8D%E6%9C%89option%E8%AF%B7%E6%B1%82/"><i class="fas fa-chevron-left" aria-hidden="true" onmouseover="$('#i-prev').toggle();" onmouseout="$('#i-prev').toggle();"></i></a></li>
        
        
        <li><a class="icon" href="/2015/05/08/(%E8%BD%AC%E8%BD%BD)%E4%B8%96%E7%95%8C%E5%9D%90%E6%A0%87%E8%BD%AC%E6%8D%A2%E5%88%B0NGUI%E5%9D%90%E6%A0%87/"><i class="fas fa-chevron-right" aria-hidden="true" onmouseover="$('#i-next').toggle();" onmouseout="$('#i-next').toggle();"></i></a></li>
        
        <li><a class="icon" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');"><i class="fas fa-chevron-up" aria-hidden="true" onmouseover="$('#i-top').toggle();" onmouseout="$('#i-top').toggle();"></i></a></li>
        <li><a class="icon" href="#"><i class="fas fa-share-alt" aria-hidden="true" onmouseover="$('#i-share').toggle();" onmouseout="$('#i-share').toggle();" onclick="$('#share').toggle();return false;"></i></a></li>
      </ul>
      <span id="i-prev" class="info" style="display:none;">Previous post</span>
      <span id="i-next" class="info" style="display:none;">Next post</span>
      <span id="i-top" class="info" style="display:none;">Back to top</span>
      <span id="i-share" class="info" style="display:none;">Share post</span>
    </span>
    <br/>
    <div id="share" style="display: none">
      <ul>
  <li><a class="icon" href="http://www.facebook.com/sharer.php?u=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/" target="_blank" rel="noopener"><i class="fab fa-facebook " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://twitter.com/share?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&text=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-twitter " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.linkedin.com/shareArticle?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&title=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-linkedin " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://pinterest.com/pin/create/bookmarklet/?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&is_video=false&description=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-pinterest " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="mailto:?subject=更新于2013.10.09&body=Check out this article: http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/"><i class="fas fa-envelope " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://getpocket.com/save?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&title=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-get-pocket " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://reddit.com/submit?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&title=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-reddit " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.stumbleupon.com/submit?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&title=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-stumbleupon " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://digg.com/submit?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&title=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-digg " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.tumblr.com/share/link?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&name=更新于2013.10.09&description=" target="_blank" rel="noopener"><i class="fab fa-tumblr " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://news.ycombinator.com/submitlink?u=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&t=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-hacker-news " aria-hidden="true"></i></a></li>
</ul>

    </div>
    <div id="toc">
      
    </div>
  </span>
</div>

    
    <div class="content index py4">
        
        <article class="post" itemscope itemtype="http://schema.org/BlogPosting">
  <header>
    
    <h1 class="posttitle" itemprop="name headline">
        更新于2013.10.09
    </h1>



    <div class="meta">
      <span class="author" itemprop="author" itemscope itemtype="http://schema.org/Person">
        <span itemprop="name">TmoonSite</span>
      </span>
      
    <div class="postdate">
      
        <time datetime="2015-05-14T12:21:47.000Z" itemprop="datePublished">2015-05-14</time>
        
      
    </div>


      

      

    </div>
  </header>
  

  <div class="content" itemprop="articleBody">
    <p>更新于:2013.10.09</p>
<p>自己记录一些东西，转载请良心注明出处。</p>
<p>1.如何同时打开两个UNITY3D项目。</p>
<p>有时候需要对比，或者需要添加另一个项目的某资源到目前项目，同时打开两个项目看起来会比较明了。如果直接打开的话，发现它说有重复项目已经被打开而提示错误不能打开。</p>
<p>此刻就需要设置一些unity preferences了，从edit处打开。勾上下图红圈圈就可以了，always show project wizard（打开项目前永远显示项目向导）。选完这个之后每次打开就会让你选择项目路径了。</p>
<p>如果需要同一个项目打开在两个UNITY3D的话，那么需要下载不同版本的UNITY3D。</p>
<p>2.collider的碰撞检测，即便是在collider里面也一样触发。</p>
<p>上图是测试，原本所有面包都在蓝色方块上，有事件当面包触发到COLLIDER的时候会自动飞出。我动态生成了一个COLLIDER来包着面包，所有面包飞出。</p>
<p>3.</p>
<p>transform.rotation获取出来的是四元素的值。</p>
<p>假设需要获取在transform面板上的旋转值，需要获取其欧拉角transform.eulerAngles。</p>
<p>4.判断三维向量是否为空</p>
<p>方法1：TestVector3.magnitude == 0</p>
<p>方法2：TestVector3 == Vector3.zero</p>
<p>5.计算反射向量，vector3有自带方法。</p>
<p>Debug.Log(Vector3.Reflect(new Vector3(1.0f,0.0f,1.0f),new Vector3(0.0f,0.0f,1.0f)));</p>
<p>7.</p>
<p>UNITY引擎中，外部类不能直接调用Editor里面的类，但是Editor里面的可以直接调用外部类。</p>
<p>8.</p>
<p>collider.transform,gameobject.transform,componnet.transform都是它们绑定之上的gameobject的transform 。</p>
<p>10.</p>
<p>有时候发现子物体乱飞，不受坐标控制。那么很有可能是因为其父节点的相对坐标问题。</p>
<p>11.</p>
<p>application.datapath在编译后的模式也是可以用。</p>
<p>12.构造以某向量为轴的旋转某角度的旋转向量。UNITY自带有四元素旋转矩阵方法。</p>
<p>// Sets the transforms rotation to rotate 30 degrees around the y-axis</p>
<p>vecRotation = Quaternion.AngleAxis(30, Vector3.up);</p>
<p>//use it</p>
<p>vecAim = vecOrgin * vecRotation;</p>
<p>13.关于3DMAX的单个模型小块全部在UNITY3D里面都被转-90度的问题</p>
<p>因为3DMAX傻逼用右手坐标系……</p>
<p>.FBX都会这样，导出.3DS就没什么问题。</p>
<p>主要是怕程序出错，很容易出错。</p>
<p>17.关于UNITY3D自带的ASSET SERVER</p>
<p>这玩意虽然简单易用，一旦操作失当（很容易失当）。当场景资源多的时候，有时候会直接替换资源。UNITY3D是会将这两个玩意辨认为不同的同名文件。会改掉本地或服务器相应目录的名字。多几次之后你就会傻眼了。</p>
<p>所以如果可以还是用SVN或者其他专业点的版本管理器好。</p>
<p>18.关于DontDestroyOnload</p>
<p>DontDestroyOnload的物体要保证它不被加载第二次，不然再进入这个场景就会再多一个。</p>
<p>所以最好能动态生成，在生成之前检验一下它是否存在。若不存在，再添加这个物体。</p>
<p>19.关于粒子的淡入和淡出</p>
<p>如下面两个图，在粒子系统的面板中，有COLOR OVER LEFTTME，里面可以拉多个透明度的点。</p>
<p>20.项目备份要及时</p>
<p>UNITY3D有时会犯一些你压根不知道怎么出来的编译BUG，重新拉个项目就会正常。</p>
<p>21.不同机器上，游戏的操作感觉不一样。</p>
<p>一般不同机器它的帧数是不一样的，假设UPDATE里面加了移动但没有加入时间参数，则会造成帧数不一样它的运动情况则不一样。若有的加了，有的没加，那么呵呵，效果更加糟糕。所以相关计算要加入时间参数。</p>
<p>25.Tiling和Offset</p>
<p>每张材质图片都具有的属性。</p>
<p>Tiling 指的是取当前图片的大小（vector2 0~1 比例的值）</p>
<p>Offset 指的是当前图片UV的值(vector2 0~1 比例的值)</p>
<p>相对应的代码为</p>
<p>renderer.material.mainTextureScale = new Vector2(x,y);</p>
<p>renderer.material.mainTextureOffset = new Vector2(x,y);</p>
<p>26.读取TXT问题</p>
<p>可能很多人没有了解过，其实U3D是可以直接读取TXT的。</p>
<p>查询一下 <strong>TextAsset</strong> 就知道了。</p>
<p>27.播放动画的帧实现方式</p>
<p>AnimationState.time是动画的播放时间，可以控制这个时间来实现类似帧的播放方式。</p>
<p>28.U3D的例子系统的RENDERER部分有BILLBOARD，有很多种朝向可以选择。</p>
<p>例如要做个一直面向天空或地面的粒子，摄像机只需要往上看和往下看的效果的话，是很好用的。</p>
<p>29.</p>
<p>不要忘了LateUpdate()这个函数，这个函数在Update后调用，一般来说像跟踪摄像机的位置变化要写在所有变换之后。用于很好的安排顺序。</p>
<p>30.</p>
<p>如果你的项目包涵单机和网络两个部分。</p>
<p>请务必将单机和网络部分分开脚本。不要在脚本里不断做不需要的重复的判断。而且各种联动烦死你。由于开发会进行不断地修改，最好先将单机部分逻辑实现。然后拷贝一份来实现网络部分。假设之后要修改的时候，每次单机和网络都要同步修改。</p>
<p>31.</p>
<p>ScreenToWorldPoint的参数vector3(屏幕坐标X，屏幕坐标Y，距离摄像机的世界距离）</p>
<p>32.</p>
<p>(NGUI)如果特效人员要在UI上做粒子特效，最好是在已有UI上做，不然搬运是个麻烦的过程。</p>
<p>33.</p>
<p>当您的动画播放出现褶皱、破损、奇葩的时候，估计是点受骨骼影响太多了，U3D设置中一个点最多只能受4个骨骼影响。</p>
<p>34.</p>
<p>角色模型经常换的情况，需要整理一套很好的方案来适应。不能每次都改绑点和引用，太浪费时间。程序就该做程序做的事情，不要把时间浪费在拖拉资源拖拉引用上。</p>
<p>35.</p>
<p>模型莫名期末有很多particle view*物体。（转）</p>
<p>决方法很简单，只要在max导出之前，按下f11键，进入max的脚本编辑器，输入delete $’particle view*’，回车，此时下一行会提示有几个particle view被删除了。看到这个数字即可以放心导出了。</p>
<p>36.</p>
<p>尽量用四元数旋转，因为欧拉角会有死锁现象。</p>
<p>37.</p>
<p>因为hashtable具有装箱和拆箱的操作，所以dictionary的效率要优于hashtable。</p>
<p>ArrayList在数量少的时候效率跟List&lt;&gt;差不多，多的时候（几万以上）要比List慢不少。</p>
<p> 38.</p>
<p>SkyBox的使用方式：</p>
<p>import进skybox的官方内置package，然后在摄像机上加Component/Rendenrer/SkyBox的脚本。</p>
<p>在面板中将skybox的材质拖到脚本的public材质对象就好了。</p>
<p><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=5b6cb95001015k9x&amp;url=http://s2.sinaimg.cn/orignal/5b6cb950gd931cc444881" target="_blank" rel="noopener"></a></p>

  </div>
</article>



        
          <div id="footer-post-container">
  <div id="footer-post">

    <div id="nav-footer" style="display: none">
      <ul>
         
          <li><a href="/">Home</a></li>
         
          <li><a href="/about/">About</a></li>
         
          <li><a href="/archives/">Writing</a></li>
         
          <li><a href="/projects_url">Projects</a></li>
        
      </ul>
    </div>

    <div id="toc-footer" style="display: none">
      
    </div>

    <div id="share-footer" style="display: none">
      <ul>
  <li><a class="icon" href="http://www.facebook.com/sharer.php?u=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/" target="_blank" rel="noopener"><i class="fab fa-facebook fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://twitter.com/share?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&text=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-twitter fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.linkedin.com/shareArticle?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&title=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-linkedin fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://pinterest.com/pin/create/bookmarklet/?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&is_video=false&description=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-pinterest fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="mailto:?subject=更新于2013.10.09&body=Check out this article: http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/"><i class="fas fa-envelope fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://getpocket.com/save?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&title=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-get-pocket fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://reddit.com/submit?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&title=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-reddit fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.stumbleupon.com/submit?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&title=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-stumbleupon fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://digg.com/submit?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&title=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-digg fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.tumblr.com/share/link?url=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&name=更新于2013.10.09&description=" target="_blank" rel="noopener"><i class="fab fa-tumblr fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://news.ycombinator.com/submitlink?u=http://yoursite.com/2015/05/14/%E6%9B%B4%E6%96%B0%E4%BA%8E2013.10.09/&t=更新于2013.10.09" target="_blank" rel="noopener"><i class="fab fa-hacker-news fa-lg" aria-hidden="true"></i></a></li>
</ul>

    </div>

    <div id="actions-footer">
        <a id="menu" class="icon" href="#" onclick="$('#nav-footer').toggle();return false;"><i class="fas fa-bars fa-lg" aria-hidden="true"></i> Menu</a>
        <a id="toc" class="icon" href="#" onclick="$('#toc-footer').toggle();return false;"><i class="fas fa-list fa-lg" aria-hidden="true"></i> TOC</a>
        <a id="share" class="icon" href="#" onclick="$('#share-footer').toggle();return false;"><i class="fas fa-share-alt fa-lg" aria-hidden="true"></i> Share</a>
        <a id="top" style="display:none" class="icon" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');"><i class="fas fa-chevron-up fa-lg" aria-hidden="true"></i> Top</a>
    </div>

  </div>
</div>

        
        <footer id="footer">
  <div class="footer-left">
    Copyright &copy; 2020 Tmoonlight
  </div>
  <div class="footer-right">
    <nav>
      <ul>
         
          <li><a href="/">Home</a></li>
         
          <li><a href="/about/">About</a></li>
         
          <li><a href="/archives/">Writing</a></li>
         
          <li><a href="/projects_url">Projects</a></li>
        
      </ul>
    </nav>
  </div>
</footer>

    </div>
    <!-- styles -->

<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">


<link rel="stylesheet" href="/lib/justified-gallery/css/justifiedGallery.min.css">


    <!-- jquery -->

<script src="/lib/jquery/jquery.min.js"></script>


<script src="/lib/justified-gallery/js/jquery.justifiedGallery.min.js"></script>

<!-- clipboard -->

  
<script src="/lib/clipboard/clipboard.min.js"></script>

  <script type="text/javascript">
  $(function() {
    // copy-btn HTML
    var btn = "<span class=\"btn-copy tooltipped tooltipped-sw\" aria-label=\"Copy to clipboard!\">";
    btn += '<i class="far fa-clone"></i>';
    btn += '</span>'; 
    // mount it!
    $(".highlight table").before(btn);
    var clip = new ClipboardJS('.btn-copy', {
      text: function(trigger) {
        return Array.from(trigger.nextElementSibling.querySelectorAll('.code')).reduce((str,it)=>str+it.innerText+'\n','')
      }
    });
    clip.on('success', function(e) {
      e.trigger.setAttribute('aria-label', "Copied!");
      e.clearSelection();
    })
  })
  </script>


<script src="/js/main.js"></script>

<!-- search -->

<!-- Google Analytics -->

<!-- Baidu Analytics -->

<!-- Disqus Comments -->


</body>
</html>
